<?php
// +----------------------------------------------------------------------
// | 管理员角色模块业务逻辑
// +----------------------------------------------------------------------
// | Author: myh
// +----------------------------------------------------------------------
namespace app\admin\service;

use app\common\model\SysRoleModel;

class SysRoleService{

    /**
     * 新增
     * @param  array  $data  新增的数据
     * @return int
     */
    public static function save($data){
        $role = SysRoleModel::create($data);
        return success($role->id);
    }

    /**
     * 更新
     * @param  array  $data 更新的数据
     * @return int
     */
    public static function update($data){
        $role = SysRoleModel::find($data['id']);
        if(!$role){
            return failure(config('error.er15')['code'],config('error.er15')['msg']);
        }
        $role->save($data);
        return success($role->id);

    }

    /**
     * 删除
     * @param  string  $ids  需要删除数据的id
     */
    public static function destroy($ids){
        if(!empty($ids)){
            SysRoleModel::deleteById($ids);
        }
        return success();
    }

    /**
     * 分页
     * @param  array  $param 搜索条件
     * @return array
     */
    public static function page($param){
        return success(SysRoleModel::page($param));
    }

    /**
     * 列表
     * @param  array  $ids 角色ID
     * @return array
     */
    public static function listById($ids){
        if(empty($ids)){
            return [];
        }
        return SysRoleModel::where('id','in',$ids)->select()->toArray();
    }

    /**
     * 列表
     * @return array
     */
    public static function list(){
        return success(SysRoleModel::where('status',1)->select()->toArray());
    }

    /**
     * 返回角色的权限ID
     * @param  string  $ids  角色ID
     * @return array
     */
    public static function getAuths($ids){
        $result = SysRoleModel::where('id','in',$ids)->select()->toArray();
        if(count($result) == 0){
            return [];
        }

        $atuhStr = '';
        foreach ($result as $k => $v) {
            if($v['auth_ids']){
                $atuhStr = $atuhStr.$v['auth_ids'].',';
            }
        }

        if(empty($atuhStr)){
            return [];
        }

        return array_unique(explode(',',substr($atuhStr,0,-1)));
    }
}